The printed circuit board (hereinafter “PCB”) design starts when a designer selects the electronic components to perform required functions. The designer must then determine the most efficient and effective way to electronically interconnect the devices. There are many considerations in designing a PCB. One consideration, for example, is the way that traces on a PCB are laid out so as to reduce the amount of crosstalk (e.g., noise or interference) that can be emitted on the PCB.
FIG. 1 illustrates some of the main components on a PCB. The PCB of FIG. 1 shows two traces 110, 112, where each trace is a wire that is laid out on a PCB 100. A trace comprises vertical segments and horizontal segments. A trace can be placed between two pins (e.g., trace 110 is placed between pin 104 and pin 108; and trace 112 is placed between pin 102 and pin 106), or between a pin 102, 104, 106, 108 and a via 114, 116, 118, 120.
When one trace 110 is placed next to another trace 112 in a PCB design (hereinafter referred to as “virtual PCB”), crosstalk may result. The amount of crosstalk produced depends on the distance between the traces 110, 112. The farther the distance between the traces 110, 112, the less crosstalk there is. However, due to limited space on a PCB, a PCB must be designed such that the trace density on the virtual PCB 100 is maximized to accommodate all the required devices, and the crosstalk on the virtual PCB 100 is minimized.
To reduce the amount of crosstalk between traces 110, 112 when laying traces on a virtual PCB 100, it is necessary to keep certain clearances between them. The problem, however, is that it becomes difficult to maintain clearances and ensure stability of changes as more traces are routed. In current practice, if laying one trace down on a virtual PCB 100 causes crosstalk between existing traces or between the new trace and the existing traces, a designer must manually move the trace and/or the existing traces.
As shown in FIG. 2, crosstalk problems are fixed by moving vertical segments of traces 104A, 104B away from each other 200, 202 to cause a larger separation between the vertical segments of the traces 110, 112, thereby reducing crosstalk. As illustrated in FIG. 3, however, while crosstalk between two traces may be resolved, the placement of an additional trace 300 may again cause crosstalk between the existing traces 110, 112.
Since hundreds of traces may be routed on a single virtual PCB 100, it is easy to see that the manual movement of traces to reduce crosstalk and to maintain clearances may make for a very cumbersome PCB design process.